/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.menosehmais.model;

import br.com.menosehmais.framework.persistence.DomainObject;
import br.com.menosehmais.framework.persistence.IHaveCreationDateTime;
import br.com.menosehmais.framework.persistence.IHaveLastUpdate;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import org.hibernate.annotations.Type;
import org.joda.time.LocalDateTime;

/**
 *
 * @author Junior JAFJ     
 */
@Entity
@Table(name = "portlet")
public class PortletDO extends DomainObject implements IHaveCreationDateTime, IHaveLastUpdate {
        
    @NotNull
    private Boolean ativo;

    @ManyToOne
    private MidiaDO midia;
    
    @Column(updatable = false)
    @Type(type = "org.joda.time.contrib.hibernate.PersistentLocalDateTime")
    private LocalDateTime creationDateTime;
    
    @Type(type = "org.joda.time.contrib.hibernate.PersistentLocalDateTime")
    private LocalDateTime lastUpdate;
    
    @Enumerated(EnumType.STRING)
    private Nivel nivel;

    @Type(type = "org.joda.time.contrib.hibernate.PersistentLocalDateTime")
    private LocalDateTime dtInicioVigencia;

    @Type(type = "org.joda.time.contrib.hibernate.PersistentLocalDateTime")
    private LocalDateTime dtFimVigencia;

    private String urlLink;
    private String urlImg;
    private String hint;
    
    // portlet denunciado
    private Boolean snitch;

    public boolean getSnitch() {
        return snitch;
    }

    public void setSnitch(boolean snitch) {
        this.snitch = snitch;
    }

    public String getHint() {
        return hint;
    }

    public void setHint(String hint) {
        this.hint = hint;
    }

    @Override
    public LocalDateTime getCreationDateTime() {
        return creationDateTime;
    }

    @Override
    public void setCreationDateTime(LocalDateTime creationDateTime) {
        this.creationDateTime = creationDateTime;
    }

    @Override
    public LocalDateTime getLastUpdate() {
        return lastUpdate;
    }

    @Override
    public void setLastUpdate(LocalDateTime lastUpdate) {
        this.lastUpdate = lastUpdate;
    }

    public Boolean getAtivo() {
        return ativo;
    }

    public void setAtivo(Boolean ativo) {
        this.ativo = ativo;
    }

    public LocalDateTime getDtFimVigencia() {
        return dtFimVigencia;
    }

    public void setDtFimVigencia(LocalDateTime dtFimVigencia) {
        this.dtFimVigencia = dtFimVigencia;
    }

    public LocalDateTime getDtInicioVigencia() {
        return dtInicioVigencia;
    }

    public void setDtInicioVigencia(LocalDateTime dtInicioVigencia) {
        this.dtInicioVigencia = dtInicioVigencia;
    }

    public void setSnitch(Boolean snitch) {
        this.snitch = snitch;
    }
    
    public EmpresaDO getEmpresa() {
        return midia.getEmpresa();
    }

    public void setEmpresa(EmpresaDO empresa) {
        this.midia.setEmpresa(empresa);
    }

    public MidiaDO getMidia() {
        return midia;
    }

    public void setMidia(MidiaDO midia) {
        this.midia = midia;
    }

    public Nivel getNivel() {
        return nivel;
    }

    public void setNivel(Nivel nivel) {
        this.nivel = nivel;
    }

    public String getUrlImg() {
        return urlImg;
    }

    public void setUrlImg(String urlImg) {
        this.urlImg = urlImg;
    }

    public String getUrlLink() {
        return urlLink;
    }

    public void setUrlLink(String urlLink) {
        this.urlLink = urlLink;
    }
}
